Cloud storage optimization may involve selecting, configuring, and maintaining cloud infrastructure and computing resources. The optimal selection, allocation, and configuration of cloud infrastructure enables maximum performance with minimal under-utilization. In many cloud environments, cloud resources are either over-provisioned or under-provisioned, resulting in inefficient utilization of limited computing resources. Alternatively, or in addition, the workloads and requirements for provisioned infrastructure may vary over time resulting a provisioned cloud infrastructure configuration that is obsolete or unable to scale in order to satisfy rapidly growing storage demands.